# -*- encoding: utf-8 -*-
# 查找与统计功能
my_str = "hello world difanjiaoyu and difanjiaoyuPython"
print(my_str.find("difanjioay"))  # 检测str是否包含在my_str中，如果是返回开始的索引值，否则返回-1
print(my_str.find("difanjiaoy"))  # 12
print(my_str.find("difanjiaoy", 0, 10))   #从0——10中查看是否有指定元素，没有返回-1
print(my_str.index("difanjiaoy"))
print("+++"*10)
#print(my_str.index("difanjiaoyu",0,10))  #index方法 跟find方法一样，只不过如果str不在my_str中会报错
print(my_str.index("difanjiaoy",0,50))

print("===============rfind==================")
#find和列表中的index类似，可以找到元素在字符串中的索引值，也可以指定起始的查找位置，但是如果找不到元素，不是报错，而是返回-1值
print(my_str.rfind("difanjiaoy"))   #  不在返回-1  从右边开始查找第一个出现的索引
print(my_str.rindex("difanjiaoy"))  #  在返回开始索引值，不在报错

print(my_str.count("difanjiaoyu"))   # 返回mystr在start和end之间在mystr里面出现大的次数
print(my_str.count("hello"))

print("=======判断========")
# 字符串内部提供了很多判断方法，可以快速判断字符串是否符合要求利用这些内置方法，可以节省很多的时间，先了解这些方法即可
alp_str = "abc"
num_str = "123"
alnu_str = "abc123"

print(alp_str.isalpha())   #如果字符全为字母 返回TRUE 否则返回FALSE
print(num_str.isalpha())
print(alnu_str.isalpha())

print(alp_str.isdigit())   # 判断全为数字 是TRUE 否FALSE
print(num_str.isalpha())
print(alnu_str.isalpha())

print(num_str.isalnum())   #如果num_str 所有的字符只要有字母或者数字则返回true  否则返回false
print(num_str.isalnum())   #
print(num_str.isalnum())   #

print("==================================")
s = "abc123"
print(s.isspace())   # 判断是否存在空格


print(my_str.startswith("hello"))   #查看字符串是否以指定字符开头


print(my_str.endswith("Python"))   #检测是否以Python结尾

s2 = "abc"
print(s2.islower())    #检测是否全是小写
s3 = "ABC"
print(s3.isupper())    #检测是否全是大写